home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_008 / src / def.obj.h < prev    next >
C/C++ Source or Header  |  1992-05-06  |  1KB  |  43 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
  2.  
  3. struct obj {
  4.     struct obj *nobj;
  5.     unsigned o_id;
  6.     unsigned o_cnt_id;        /* id of container object is in */
  7.     xchar ox,oy;
  8.     xchar odx,ody;
  9.     uchar otyp;
  10.     uchar owt;
  11.     unsigned quan;    /* small in general but large in case of gold */
  12.     schar spe;
  13.     char olet;
  14.     Bitfield(oinvis,1);
  15.     Bitfield(odispl,1);
  16.     Bitfield(known,1);    /* exact nature known */
  17.     Bitfield(dknown,1);    /* color or text known */
  18.     Bitfield(cursed,1);
  19.     Bitfield(unpaid,1);    /* on some bill */
  20.     Bitfield(rustfree,1);
  21.     Bitfield(onamelth,6);
  22.     long age;    /* creation date */
  23.     long owornmask;
  24. #define    W_ARM    01L
  25. #define    W_ARM2    02L
  26. #define    W_ARMH    04L
  27. #define    W_ARMS    010L
  28. #define    W_ARMG    020L
  29. #define    W_ARMOR        (W_ARM | W_ARM2 | W_ARMH | W_ARMS | W_ARMG)
  30. #define    W_RINGL    010000L    /* make W_RINGL = RING_LEFT (see uprop) */
  31. #define    W_RINGR    020000L
  32. #define    W_RING        (W_RINGL | W_RINGR)
  33. #define    W_WEP    01000L
  34. #define    W_BALL    02000L
  35. #define    W_CHAIN    04000L
  36.     long oextra[1];
  37. };
  38.  
  39. extern struct obj *fobj;
  40.  
  41. #define newobj(xl)    (struct obj *) alloc((unsigned)(xl) + sizeof(struct obj))
  42. #define    ONAME(otmp)    ((char *) otmp->oextra)
  43.